package demo02;

import java.util.HashMap;
import java.util.Map;
//统计数组中和为k的子数组
class Solution {
    public int subarraySum(int[] nums, int k) {
        //定义hash表
        //参数1表示当前元素,参数2表示出现次数
        Map<Integer,Integer> hash = new HashMap<Integer,Integer>();
        hash.put(0,1);//处理当前数组如果为目标子数组的情况
        int ret = 0;//统计结果
        int sum = 0;//计算前缀和

        for(int num : nums){
            sum = sum + num;
            ret = ret + hash.getOrDefault(sum - k,0);
            hash.put(sum,hash.getOrDefault(sum,0)+1);
        }
        return ret;
    }
}